Personal computers (PC) have long been deployed as an essential tool in all facets of daily life. It goes without saying that almost every business operation relies on PCs. Personal home use is almost as ubiquitous, for Internet access and for work purposes.
Generally the PC comprises a “motherboard” having a central processor chip and a host of supporting circuitry such as random access memory (RAM), memory controller, graphics controller, and so on. A variety of data storage units are typically included such as an internal hard disk drive, a compact disk (CD) reader or reader/writer unit, and a floppy drive. The “brains” behind the machine are the various software components that execute on the PC. For example, an important software component is the operating system (OS) which in turn comprises a variety of program code components.
Because of the mechanical load imposed on a hard disk drive, it is typically one of the first components in the PC to break down. A mechanical failure in a hard disk drive typically results in destruction of the data storage media. This situation is referred to variously as a disk drive crash, a head crash (because the read/write head has impacted on the surface of the storage medium), and so on. In the case of a disk drive crash, there is no method to recover the data in the crashed disk, if the data had not been previously backed up. So, users who do not want to be in such a situation backup their data frequently, either manually (e.g., in a home environment) or with the assistance of software.
Redundant arrays of inexpensive disks (RAID) provide hardware solutions for data recovery. The RAID standard provides many levels of backup methodologies, each offering different performance and data recovery capabilities. RAID1 is a level in which data is replicated from one disk drive to another disk drive (referred as a backup disk drive) at a block level instead of a file level. An application sees just one logical disk drive. However, the logical drive comprises two hard disk drives with a RAID1 configuration referred to as mirroring. When the application issues a write command to the logical disk drive, the command is issued to both of the underlying disk drives so that both disk drives will always have the same data. Thus, even if one of the disk drives crashes, the data is still available on the surviving disk drive.
Implementations of RAID1 are generally located in a disk controller card and include a logical volume manager (LVM) and a RAID disk array. The disk controller card can be a PCI or PC card, which is inserted to the PC and connects to the two hard disk drives. This card has a processor on it to process I/O commands issued by a CPU of the PC. The LVM is a software module in the OS. The LVM component “sees” both disk drives and provides the I/O routines (system calls) for doing disk I/O. The higher level applications programs see just one logical disk drive. The RAID disk array is an external box, which has a lot of disk drives in it and has a disk controller to process I/O commands from one or more PCs. The RAID disk array and the PCs can be connected via a SCSI interface or a Fibre Channel interface, or the like. However, RAID systems are typically not portable. Thus, a conventional RAID solution is not appropriate for portable computers, e.g., laptop computers.